package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.ItemVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {
    @Autowired
    private FileService fileService;

    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {  //使用流来接
        ImageVO imageVO = fileService.upload(file);
        if (imageVO == null){
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }
    /**
     * 传入：file（二进制流）
     * API默认文件大小最大1M
     * 可以编辑配置类重新定义
     * 1.文件重命名
     * 2.限制上传格式
     * @param file
     * @return
     */
//    @PostMapping("/upload")
//    public SysResult upload(MultipartFile file) throws IOException {  //使用流来接
//        //1.获取文件名称
//        String fileName = file.getOriginalFilename();
//        //2.准备文件上传的本地目录（建议使用绝对路径）
//        String fileDir = "D:/JT_IMAGE/";
//        //3.判断目录是否存在
//        File filePath = new File(fileDir);
//        if (!filePath.exists()){
////            filePath.mkdir();
//            filePath.mkdirs();  //可创建多级目录
//        }
//        //4.准备输出对象
//        String realFilePath = fileDir + fileName;   //文件输出的全路径
//        File realFie = new File(realFilePath);
//        //5.实现文件上传
//        //内部就是IO流的切换
//        file.transferTo(realFie);
//        return SysResult.success();
//    }
    @DeleteMapping("/deleteFile")
    public SysResult fileRemove(String virtualPath){
        fileService.fileRemove(virtualPath);
        return SysResult.success();
    }



}
